package com.totem.order.vo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class SubscribeOrderVO implements Serializable {
    // request
    @NotEmpty
    private String subscribeName;
    @NotEmpty
    private String currency;
    @NotNull
    private BigDecimal amount;

    private Date orderDate;
    @JsonIgnore
    private Long orderId;
    @JsonIgnore
    private BigDecimal dailyRateReturn;
    @JsonIgnore
    private Date closeTime;
    @JsonIgnore
    private Date cancelTime;
    private String subscribeNameCn;

    // response
    private String nickname;
    private String countryCode;
    private String mobile;
    private String email;

    @Schema(description="支付状态", example="UNPAID,CANCEL,FINISHED,DISABLED")
    private String paymentState;
    @Schema(description="收益周期")
    private Integer returnDays;
    @Schema(description="预估收益")
    private BigDecimal estimatedReturn;

    @Schema(title = "订单编号")
    private String orderNo;

    @Schema(title = "结束时间")
    private String closeDate;
    @Schema(title = "取消时间")
    private String cancelDate;

    @Schema(title = "当前收益")
    private BigDecimal currentReturn;
    @Schema(title = "奖励处理状态", description="只处理特殊认购包的直推奖励,普通认购包在认购包收益产生后直接处理")
    private String awardHandleState;
    @Schema(title = "归属团队投入处理状态")
    private String teamHandleState;
    @Schema(title = "收益处理状态", description="UNHANDLED-未产生收益, 收益中-HANDLING, 收益完成-HANDLED, 暂停-STOP")
    private String returnHandleState;
}
